
package com.syp.lease.web.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.syp.lease.model.entity.ApartmentInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.syp.lease.web.admin.vo.apartment.ApartmentDetailVo;
import com.syp.lease.web.admin.vo.apartment.ApartmentItemVo;
import com.syp.lease.web.admin.vo.apartment.ApartmentQueryVo;
import com.syp.lease.web.admin.vo.apartment.ApartmentSubmitVo;

/**
 * 公寓信息管理服务接口
 * 提供公寓信息的保存、查询、删除等功能
 */
public interface ApartmentInfoService extends IService<ApartmentInfo> {

    /**
     * 保存或更新公寓信息
     *
     * @param apartmentSubmitVo 公寓提交对象，包含需要保存或更新的公寓信息
     */
    void saveOrUpdateApartment(ApartmentSubmitVo apartmentSubmitVo);

    /**
     * 根据查询条件分页获取公寓列表项
     *
     * @param page    分页对象，用于封装分页信息
     * @param queryVo 查询条件对象，包含查询公寓列表的条件
     * @return 返回封装了公寓列表项的分页对象
     */
    IPage<ApartmentItemVo> pageApartmentItemByQuery(Page<ApartmentItemVo> page, ApartmentQueryVo queryVo);

    /**
     * 根据公寓ID获取公寓详细信息
     *
     * @param id 公寓ID，用于标识特定的公寓信息
     * @return 返回公寓详细信息对象
     */
    ApartmentDetailVo getApartmentDetailById(Long id);

    /**
     * 根据公寓ID删除公寓信息
     *
     * @param id 公寓ID，用于标识需要删除的公寓信息
     */
    void removeApartmentById(Long id);
}
